package com.education.platform.dto.demand;

import com.education.platform.entity.Demand;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 需求创建DTO
 *
 * @author education-platform
 * @since 2024-09-27
 */
@Data
public class DemandCreateDTO {

    /**
     * 需求标题
     */
    @NotBlank(message = "需求标题不能为空")
    @Size(max = 200, message = "需求标题长度不能超过200个字符")
    private String title;

    /**
     * Markdown内容
     */
    private String contentMd;

    /**
     * 科目
     */
    @NotBlank(message = "科目不能为空")
    private String subject;

    /**
     * 年级
     */
    private String grade;

    /**
     * 授课方式：ONLINE-线上授课, OFFLINE-线下授课, BOTH-线上线下均可
     */
    private Demand.TeachingType teachingType;

    /**
     * 预算最低价
     */
    private BigDecimal budgetMin;

    /**
     * 预算最高价
     */
    private BigDecimal budgetMax;

    /**
     * 期望上课时间
     */
    private List<String> preferredTime;

    /**
     * 上课地址
     */
    private String address;

    /**
     * 特殊要求
     */
    private String requirements;

    /**
     * 附件列表
     */
    private List<String> attachments;

    /**
     * 过期时间
     */
    private LocalDateTime expiresAt;
}
